home *** CD-ROM | disk | FTP | other *** search
- {===========================================================================
- Date: 09-18-93 (23:25)
- From: MIKE DICKSON
- Subj: EXEC ()
- ---------------------------------------------------------------------------
- [MM] ▒ I've written my own EXEC function that performs an FSearch() on the
- [MM] Well, that's great. (Why don't you post it!).
-
- Okay...here's an illustrative little program... }
-
- {$M $4000,0,0 }
- Program JohnMajorHadBetterResignPrettyDamnedShortly;
-
- Uses DOS;
-
- FUNCTION FileExists (FileName: String):Boolean;{ Checks if file
- exists } var
- Attr : Word;
- f : file;
- begin
- Assign (f, Filename);
- GetFAttr(f, attr);
- FileExists := (DOSError = 0);
- end;
-
- FUNCTION SearchExec (ProgramName, Parameters : String) : Integer;
- var
- Result : Integer;
- begin
- { If the program doesn't exist then search on the %PATH for it }
- If Not FileExists(ProgramName) then
- ProgramName := FSearch(ProgramName, GetEnv('PATH'));
-
- { If it's a batch file then call it through the command processor }
- If Pos('.BAT', ProgramName) <> 0 then begin
- Parameters := '/C '+ProgramName+' '+Parameters;
- ProgramName := GetEnv('COMSPEC');
- end;
-
- { Now call the program...if it didn't exist the set DOSError to 2 }
- If ProgramName <> '' then begin
- SwapVectors;
- Exec (ProgramName, Parameters);
- Result := DOSError;
- SwapVectors;
- SearchExec := Result;
- end else SearchExec := 2;
-
- end;
-
- begin
- If SearchExec ('AUTOEXEC.BAT', '/?') <> 0
- then writeln ('Execution was okay!')
- else writeln ('Execution was NOT okay!');
- end.